{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 30 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHMCAYAAABr+jg7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAoMElEQVR4nO3deZBmdXU//k9v09t0ywRSwalpEIxIFJA9mhIiAkFAGUAsJEFkFdkEoVikDFCgBlwgEJaAojiGBAZBQPZARDAollGiEiYSsKCxWUpl6J7eu+f5/ZG6/nqmG+x7zij54uv1T1fdes7nfPrznHuf9zwwNU2NRqNRAAAgqPnV3gAAAP9vEygBAEgRKAEASBEoAQBIESgBAEgRKAEASBEoAQBIaZ3Pi1avXl0GBgZKT09PaWpq+l3v6TWh0WiUoaGhsnjx4lJKcX41zTy/5uZmMxhgBnPMYJ4ZzDGDeWYwZ+0ZfCXzCpQDAwOlr69vnWzuD01/f38ppTi/oP7+/rJkyRIzmGAGc8xgnhnMMYN5ZjCnmsFXMq9A2dPTU0op5dxzzy0dHR21N3LvvffWrplp1113DdeuXLky1XvRokWhurGxsXLWWWf95uxKKeWUU04p7e3ttdf6bW/ib7P11luHa5966qlU77a2tlDdyMhIOeSQQ35zftXPW2+9tXR3d9de7yMf+UhoH5W99947XPuXf/mXqd7Lli0L1U1OTpY77rhjjRm84IILQvfwzDUiDj/88HDtRhttlOr94Q9/OFQ3Pj5ePvvZz86awcsuu6x0dnbWXu+ee+4J7aNy3XXXhWtvvvnmVO/x8fFQ3cjISDnssMPWmJ/PfOYzoRn86U9/GtpDZbPNNgvXnnHGGaneZ599dqhufHy8nH/++bNmcOnSpaFn6/T0dGgflVtvvTVc+8ADD6R633///aG6sbGxct55560xg3fddVfoc+Rv//ZvQ3uoZJ5ll1xySar3oYceGqqbnJwst99++7w+A+YVKKuvhjs6OkIP0mioqER6VsbGxl613qWUNb5Wb29vDz1Is3tYuHBhuLarqyvVO/veV+dX/ezu7g79Pi0tLal9RP4gUIk8uGZaV2dYSvwezs5Bxm/7zyy/TeSem2ntGezs7Aydx4IFC1L7yMjOYPb+WRczmD2/7By8mr3XnsG2trbQcyF7L2X+M3Hmc6iUdXeGpcQ/R1pb5xWZXlZmhnt7e1O91+XnyMvxl3IAAEgRKAEASBEoAQBIESgBAEgRKAEASBEoAQBIESgBAEgRKAEASBEoAQBIESgBAEgRKAEASBEoAQBIqfUvnb/00ktlfHy8dpO3v/3ttWtm+vnPfx6ufdvb3pbq/cY3vjFUNzw8POva1NRUmZycrL3WTTfdFNpDZffddw/Xnnfeeanef/InfxKqm5iYmPP6z372s9LZ2Vl7vQ996EOhfVTWX3/9cO11112X6n366aeH6latWlVuueWWNa59/etfL62ttW77Ukop73rXu0J7qBx66KHh2ug9WDnzzDNDdYODg3PO/9e+9rXQGW6wwQahfVTOP//8cO23v/3tVO+ouT4vFi5cGLqHM/dgKaX86Ec/Cteee+65qd7R+2euz5FSSmlraysLFiyovV6kZqbMHJ1xxhmp3m9605tCdXPN4H//93+Xrq6u2mv9xV/8RWgPlaOOOipc++Mf/zjVe/ny5aG6wcHB8rrXvW5er/UNJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACmtdV786U9/OtRkm222CdVVTj755HDtM888k+q95557huqGhoZmXdtqq61KV1dX7bW23HLL0B4q99xzT7j2yiuvTPX+0pe+FKobGxub83pvb2/oDA899NDQPiqPPfZYuHZ6ejrV+6yzzgrVTU5Ozrq27bbblvb29tpr3X777aE9VHbcccdw7RNPPJHq/dOf/jRUt2rVqjmv77DDDqEz/MpXvhLaR2VwcDBcu95666V6d3Z2huomJiZmXevp6Qndw729vaE9VD772c+Ga88555xU77a2tlBda+vcH9HT09Oh58pcz4Q6TjjhhHDtpz71qVTv6Gf56OjorGsf+MAHQvN08cUXh/ZQOe+888K1S5cuTfXeZZddQnWNRmPer/UNJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAAprXVevGzZstLV1VW7ycqVK2vXzHTxxReHa//pn/4p1fvd7353qG56ejrVd6YPfOADqfqXXnopXHvqqaemeh966KGhuuHh4Tmvv/Wtby09PT2117vp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AABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSav2L9xtvvHHoHyg/66yzatfM9Ktf/Spce8UVV6R6L1y4MFTXaDRmXdtkk01Kc3P9DH/ggQeG9lBZtGhRuHZwcDDV+4UXXgjVTU1NzXm9paWltLS01F5v+fLloX1Utttuu3DtG97whlTvZcuWhermOsOtt9669Pb21l4rcw+WUspjjz0Wrt1yyy1TvZuamlL1a3vuuedKV1dX7bpbbrkl1XfTTTcN126xxRap3jvuuGOobnp6eta1PfbYo3R2dtZeK/scPOmkk8K1b3vb21K977rrrlDd+Ph4ufLKK2dd/853vhOawUMOOSS0j8r6668frj3yyCNTvbfeeutQ3VyfYS+++GIZGxurvVZHR0doD5Wbb745XLtixYpU72j9xMTEvF/rG0oAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSWuu8+Oabby4tLS21m+yxxx61a2ZaunRpuLa5OZeZ3/SmN4Xqpqeny6OPPrrGta9+9aulu7u79lp33313aA+V22+/PVz7i1/8ItV7m222SdWv7Ywzzii9vb216y688MJU36effjpcu3z58lTvv/7rvw7VTUxMlAceeGCNa88//3wZHh6uvda+++4b2kMl8wxoNBqp3nfccUeobmRkpBxwwAGzrl977bWlra2t9nr/8A//ENpHJfMe9PX1pXpHnlullDI1NTXr2uDgYJmYmKi91o477hjaQ+W73/1uuPZrX/taqvcxxxwTqhsdHZ3z+qWXXlpaW2t9fJdSSjnuuONC+6jsueee4drtttsu1fu9731vqG5ycnLWte7u7tLV1VV7rQMPPDC0h8qvf/3rcO3HP/7xVO+3v/3tobq57uGX4xtKAABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSBEoAAFJa67z4tNNOK11dXbWbtLe3166Z6ctf/nK49r777kv1Puqoo0J1o6Oj5bTTTlvj2vve977QWhtssEGornLIIYeEa/faa69U70ceeSRUNzY2Nud7NzQ0VJqammqvd/fdd4f2Ufnwhz8crr3++utTvbfd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qfWvre++++6hf2B85cqVtWtmuvPOO8O166+/fqr3008/HaobGhqadW377bcvbW1ttddqb28P7aFy3HHHhWunpqZSvZcuXRqqm5ycnPP6iy++WMbHx2uvd9FFF4X2Ubn88stfldpSSrn44otDdSMjI+Wqq65a49p//Md/hObp/PPPD+2h8vGPfzxc+8UvfjHV+8knnwzVjY6Oznl9YGCgdHd3115vo402Cu2jcuCBB4Zrt9hii1Tvyy67LFTXaDRmXdtss81KT09P7bVuvPHG0B4qRxxxRLh2hx12SPXeZ599QnWTk5Nzfv5ttNFGpampqfZ67373u0P7qGQ+i6644opU72222SZUNz09Peva+9///tBn8emnnx7aQ+Waa64J195+++2p3ieeeGKork4G8A0lAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKa11XvyWt7yl9Pb21m5y8skn166Z6aCDDgrXrrfeeqnen/nMZ0J1ExMTs67tv//+pbOzs/Zap59+emgPlbe97W3h2rvvvjvVe+uttw7VTU9Pz3n9kEMOCa33ute9LlRX2WGHHcK1N954Y6r3PffcE6obGxubdW3nnXcu3d3dtdf60z/909AeKp/+9KfDtZH9zrTxxhuH6pqamua8vnjx4tLT01N7vfPPPz+0j8pFF10Urj3ssMNeld5zPQfvvffe0HPwhBNOCO2hcuCBB4Zrn3jiiVTv6PNjbGys3HnnnbOu77bbbqWtra32eu95z3tC+6hcf/314dqlS5emen/1q19N1c/05S9/OZRlvvSlL6X6Tk1NhWszz9BSSnnooYdCdY1GY96v9Q0lAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACmtdV586qmnlgULFtRu8s1vfrN2zUwbbrhhuHbp0qWp3nvvvXeobmRkpFxzzTVrXLvyyitLS0tL7bVOPfXU0B4qt912W7h2xx13TPVesWJFqK7RaMx5/dRTTy3t7e211zv99NND+6i8/vWvD9fecMMNqd5PPPFEqG5ycnLWte9///ulo6Oj9lqLFi0K7aFywgknhGt/8pOfpHrvu+++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"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 30 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHMCAYAAABr+jg7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAmvUlEQVR4nO3da4ymdXk/8N8cds4zu+zidg8zyMklYbciBCyYaGjR1oiHokYqpDU26TE1gRemvjLpC5uojTGSNpWkCbXRYChN1RZSQEGWslCWwwKyy2nZZYbZA7jAnI/P83/xz01nd2Zx7utalern82bInef6Xb/5Pddz39+ZZbMtzWazWQAAIKj1l70BAAD+bxMoAQBIESgBAEgRKAEASBEoAQBIESgBAEgRKAEASGlfzYsajUYZHR0t/f39paWl5ee9p18JzWazjI+Ply1btpRSivOraen5tba2msEAM5hjBvPMYI4ZzDODOSfO4JtZVaAcHR0tQ0NDp2Rzv26Gh4dLKcX5BQ0PD5fBwUEzmGAGc8xgnhnMMYN5ZjCnmsE3s6pA2d/fX0op5Utf+lLp6uqqvZGDBw/WrlnqRz/6Ubh2ZmYm1Xvz5s2huoWFhbJr1643zq6UUi6//PLS3r6qIz/OunXrQnuoZM5g7dq1qd6ReSmllLm5ufIv//Ivb5xf9fW+++4rfX19tdc766yzQvuo3H777eHaL37xi6nezzzzTKp+6QwODw+XgYGB2mvceeedqT28/PLL4drf+Z3fSfU+duxYqG5ycrK8//3vXzaDX/jCF0Jz/Xu/93uhfVTOP//8cO38/Hyq97PPPhuqO/EMSynlvPPOK21tbbXXWlhYCO2h8t73vjdc+9GPfjTV+/LLLw/VjY2NlaGhoWUz+NWvfrV0d3fXXm92dja0j8oVV1wRro3ct5eqAmFdk5OT5cMf/vApuQ8+8cQToT1UMvfyH/7wh6ne0c/P/Px8+bd/+7fjzu9kVpVuql8Nd3V1hYa4s7Ozds1SkZvPqagtpYQC4FJLf63e3t4eWm/NmjWpPSwuLoZrOzo6Ur2z9dX5VV/7+vpWNdgnitw8lurp6QnXZmcwa+kMDgwMhM6it7c3tYeJiYlwbeT9Xmpubi5Vf+IMdnV1hQJl9oGameFsoMzufekMtrW1hT4T2X8lOHMvys5/9v5z4gx2d3eHnsU/648sf5bMZzE7Q6dyBqP3weweMs+R7LM0+96v5n8R8JdyAABIESgBAEgRKAEASBEoAQBIESgBAEgRKAEASBEoAQBIESgBAEgRKAEASBEoAQBIESgBAEgRKAEASGmv8+KRkZHS2dlZu8k3vvGN2jVLNZvNcO173vOeVO/rr78+VDc1NVV27tx53LX9+/eH/oH2kZGR0B4q/f39qfqMyy67LFQ3Pz9/0utzc3O113v66adD+6jcf//94dqf/vSnqd59fX2humazWSYnJ4+7dvfdd5fe3t7aax0+fDi0h0pmBr/97W+nekfmpZRSZmZmVrz+0EMPlTVr1tReb3x8PLSPyrve9a5w7QsvvJDqHa1f6ezPOOOM0PkdOnQotIfKK6+8Eq59+eWXU72j94CTzUxra2voWZKdgyeeeCJcm+29ffv2UN2J98BSStm1a1foPnjzzTeH9lB5/fXXw7UHDhxI9b7qqqtCdTMzM+W73/3uql7rN5QAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACktNd58U033VRaWlpqN+no6Khds9SGDRvCtZdcckmq90c+8pFQ3djY2LJrGzduLO3ttY78pGvV0dbWFq49dOhQqvfMzEyobmFhYcXrGzZsKP39/bXX27dvX2gflUcffTRc22g0Ur3XrVsX7js5OXnctc997nOltbX+z5HZz/Do6Gi49qqrrkr13rRpU6hudnZ2xev/+Z//GVrvnnvuCdVVMu/Bxo0bU73n5+dDdYuLi8uubdq0KfS9vPTSS6E9VO67775w7eOPP57qfeONN4bqTnYf/I//+I+yZs2a2uu9+uqroX1UnnrqqXBtT09PqveWLVtCdVNTU8uuffCDHwyttXXr1lBdJfL8r1x22WWp3tF7wPT09Kpf6zeUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKQIlAAApAiUAACkCJQAAKS013nx9ddfX7q6umo3ef7552vXLLV3795w7bPPPpvq/e///u+huqmpqWXXPvOZz5Tu7u7aa83Pz4f2UNmzZ0+49q677kr1jtY3m80VrzcajdJoNGqv98ILL4T2UZmYmEjVZ/T29obqFhcXl10777zz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Tvae79y5s3R1ddVe78knnwzto7Jly5Zw7dTUVKr3pk2bQnWzs7PLrk1PT5e2trbaa7388suhPVTWrVsXrv3gBz+Y6v3JT34yVDc2Nlb+7M/+bNn1Q4cOhc7w2LFjoX1UXn311XDtSrNQx0r3s6iPfvSjoc/wwsJCqu/09HS49tprr0313rp1a6hufHx81a/1G0oAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABSBEoAAFIESgAAUgRKAABS2uu8+LOf/WxZs2ZN7SYPPvhg7Zql5ufnw7WDg4Op3p/4xCdCdTMzM+X+++8/7tr3vve90tPTU3utm266KbSHyhNPPBGuXbduXar3e9/73lDd7OxsefTRR5dd7+joKO3ttcb2jfUyms1muPall15K9X7yySdDdXNzc8uurV27tnR1ddVea+PGjaE9VDJn0Nqa+7l3z549obqJiYkVr3/pS1/KbCfswgsvDNe+4x3vSPV++9vfHqqbmZlZdu3AgQOlpaXllKxVx5lnnhmu/d3f/d1U7+7u7lDdyZ59a9euDd0He3t7Q/uonHbaaeHazs7OVO/I91tKKQsLC+WBBx447trv//7vl76+vtprRe6dS91+++3h2ttuuy3V+7d/+7dDdZOTk6t+rd9QAgCQIlACAJAiUAIAkCJQAgCQIlACAJAiUAIAkCJQAgCQIlACAJAiUAIAkCJQAgCQIlACAJAiUAIAkCJQAgCQIlACAJDSXufF3/ve90JN1q1bF6qrXH755eHac889N9W7u7s7Vb/UV77yldLW1la7bu/evam+GzZsCNeeeeaZqd6n2tVXX116enpq151++umpvs8991y49pFHHkn1fuKJJ1L1S73zne8svb29teva22vdKpaZmJgI1+7bty/V+5vf/Gaobm5ubsXrV199deno6Ki9XvZesnHjxnDto48+mup92223heoWFhaWXZucnCwtLS2114qc+VKXXHJJuHbbtm2p3s8//3yobnx8fMXrV1xxRenq6qq93vr160P7qGRmcO3ataneUZOTk+XKK6887tqZZ55ZBgYGaq91zjnnpPby8MMPh2sfeOCBVO8777wzVLfSZ/hk/IYSAIAUgRIAgBSBEgCAFIESAIAUgRIAgBSBEgCAFIESAIAUgRIAgBSB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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from common.simple_conv_net import SimpleConvNet\n",
    "\n",
    "def filter_show(filters, nx=8, margin=3, scale=10):\n",
    "    \"\"\"\n",
    "    c.f. https://gist.github.com/aidiary/07d530d5e08011832b12#file-draw_weight-py\n",
    "    \"\"\"\n",
    "    FN, C, FH, FW = filters.shape\n",
    "    ny = int(np.ceil(FN / nx))\n",
    "\n",
    "    fig = plt.figure()\n",
    "    fig.subplots_adjust(left=0, right=1, bottom=0, top=1, hspace=0.05, wspace=0.05)\n",
    "\n",
    "    for i in range(FN):\n",
    "        ax = fig.add_subplot(ny, nx, i+1, xticks=[], yticks=[])\n",
    "        ax.imshow(filters[i, 0], cmap=plt.cm.gray_r, interpolation='nearest')\n",
    "    plt.show()\n",
    "\n",
    "network = SimpleConvNet()\n",
    "# 随机初始化的权重\n",
    "filter_show(network.params['W1'])\n",
    "\n",
    "# 学习后的权重\n",
    "network.load_params(\"params.pkl\")\n",
    "filter_show(network.params['W1'])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}